//package com.example.springinit2.config;
//
//import com.alibaba.druid.filter.Filter;
//import com.alibaba.druid.filter.logging.Slf4jLogFilter;
//import com.alibaba.druid.filter.stat.StatFilter;
//import com.alibaba.druid.pool.DruidDataSource;
//import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.jdbc.core.JdbcTemplate;
//import org.springframework.stereotype.Component;
//
//import javax.sql.DataSource;
//import java.util.ArrayList;
//import java.util.List;
//
//@Component
//@Configuration
//public class DataSourceConfig {
//
//  @Bean(name = "test1DataSource")
//  //@Qualifier("primaryDataSource")
//  @ConfigurationProperties(prefix="spring.datasource.druid.test1")
//  public DataSource primaryDataSource() {
//	DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
//	dataSource.setProxyFilters(getDuridFilters());
//	return dataSource;
//  }
//
//  @Bean(name = "test2DataSource")
//  //@Qualifier("secondaryDataSource")
//  @Primary
//  @ConfigurationProperties(prefix="spring.datasource.druid.test2")
//  public DataSource secondaryDataSource() {
//	DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
//	dataSource.setProxyFilters(getDuridFilters());
//	return dataSource;
//  }
//
//  @Bean(name = "test1JdbcTemplate")
//  public JdbcTemplate primaryJdbcTemplate(
//		  @Qualifier("test1DataSource") DataSource dataSource) {
//	return new JdbcTemplate(dataSource);
//  }
//
//  @Bean(name = "test2JdbcTemplate")
//  public JdbcTemplate secondaryJdbcTemplate(
//		  @Qualifier("test2DataSource") DataSource dataSource) {
//	return new JdbcTemplate(dataSource);
//  }
//
//  private List<Filter> getDuridFilters() {
//	List<Filter> filters = new ArrayList<>(2);
//	filters.add(statFilter());
//	filters.add(slf4jLogFilter());
//	return filters;
//  }
//
//  @Bean
//  public StatFilter statFilter() {
//	StatFilter statFilter = new StatFilter();
//	statFilter.setSlowSqlMillis(400);
//	statFilter.setLogSlowSql(true);
//	statFilter.setMergeSql(true);
//	return statFilter;
//  }
//
//  @Bean
//  public Slf4jLogFilter slf4jLogFilter() {
//	Slf4jLogFilter slFilter = new Slf4jLogFilter();
//	slFilter.setDataSourceLogEnabled(true);
//	slFilter.setConnectionLogEnabled(true);
//	slFilter.setStatementLogEnabled(true);
//	slFilter.setResultSetLogEnabled(false);
//	slFilter.setStatementExecutableSqlLogEnable(true);
//	return slFilter;
//  }
//}
